package xyz.xmh.pattern.structural.bridgepattern;

/**
 * BridgePatternDemo
 * 桥接模式演示<br/>
 * 使用一个抽象类桥接各种功能接口，极大地简化了接口和实现类之间的耦合。
 * 比方说：<br/>
 * 在开始学java的时候老师讲到继承的时候，总是喜欢用一个例子来讲解，那就是画图，这里有一个画笔，可以画正方形、长方形、圆形（这个大家都知道怎么做吧，我就不解释了）。
 * 但是现在我们需要给这些形状进行上色，这里有三种颜色：白色、灰色、黑色。这里我们可以画出3*3=9中图形：白色正方形、白色长方形、白色圆形。。。。。。
 *
 * @author xuMingHai
 * @since 2021/4/30 星期五 9:54
 */
public class BridgePatternDemo {

    public static void main(String[] args) {
        // 测试桥接模式，Shape是这个桥，可以各种路口的
        // 测试圆这个路口

        // 画出绿色的圆
        Shape greenCircle = new Circle(5, 10, 10, new GreenCircle());
        // 具体功能
        greenCircle.draw();

        // 画出红色的圆
        Shape redCircle = new Circle(3, 9, 9, new RedCircle());
        // 具体功能
        redCircle.draw();
    }
}
